home *** CD-ROM | disk | FTP | other *** search
- /* IconXCmd.h - Definitions to use when creating XCMDs and XFCNs for use with ProIcon */
-
- #ifndef extended
- #define extended double
- #endif
-
- typedef struct XCmdBlock {
- short paramCount; /* number of arguments to XCMD or XFCN */
- Handle params[16]; /* handles of input arguments */
- Handle returnValue; /* handle of result string */
- Boolean passFlag; /* pass on to another handler (not supported) */
-
- void (*entryPoint)(); /* call back to ProIcon */
- short request; /* call back request */
- short result; /* call back result code */
- long inArgs[8]; /* call back input arguments */
- long outArgs[4]; /* call back output arguments */
- } XCmdBlock, *XCmdBlockPtr;
-
- typedef unsigned char Str31[32];
- typedef unsigned char *Str31Ptr;
-
- enum requestcodes { /* call back request codes */
- xreqSendCardMessage=1, /* 1 - not supported */
- xreqEvalExpr, /* 2 - not supported */
- xreqStringLength, /* 3 - C string length */
- xreqStringMatch, /* 4 - case-insensitive string search */
- xreqSendHCMessage, /* 5 - not supported */
- xreqZeroBytes, /* 6 - zero bytes in memory */
- xreqPasToZero, /* 7 - pascal string to C string with handle */
- xreqZeroToPas, /* 8 - C string to pascal string */
- xreqStrToLong, /* 9 - string to unsigned long conversion */
- xreqStrToNum, /* 10 - string to signed long conversion */
- xreqStrToBool, /* 11 - true/false string to boolean conversion */
- xreqStrToExt, /* 12 - string to extended (80-bit) real conversion */
- xreqLongToStr, /* 13 - unsigned long to string conversin */
- xreqNumToStr, /* 14 - signed long to string conversion */
- xreqNumToHex, /* 15 - long to hexidecimal conversion */
- xreqBoolToStr, /* 16 - boolean to true/false string conversion */
- xreqExtToStr, /* 17 - extended (80-bit) real to string conversion */
- xreqGetGlobal, /* 18 - get global */
- xreqSetGlobal, /* 19 - set global */
- xreqGetFieldByName, /* 20 - not supported */
- xreqGetFieldByNum, /* 21 - not supported */
- xreqGetFieldByID, /* 22 - not supported */
- xreqSetFieldByName, /* 23 - not supported */
- xreqSetFieldByNum, /* 24 - not supported */
- xreqSetFieldByID, /* 25 - not supported */
- xreqStringEqual, /* 26 - case-insensitive string equal compare */
- xreqReturnToPas, /* 27 - copy up to return or end of C string */
- xreqScanToReturn, /* 28 - scan to return of end of C string */
- xreqScanToZero=39 /* 39 scan to end of C string */
- };
-
- enum resultcodes { /* call back result codes */
- xresSucc,
- xresFail,
- xresNotImp};
-
- typedef void (*procPtr)(void );
-
- /* Prototypes for callback functions */
-
- pascal void SendCardMessage(XCmdBlockPtr paramPtr, StringPtr msg);
- pascal Handle EvalExpr(XCmdBlockPtr paramPtr, StringPtr expr);
- pascal long StringLength(XCmdBlockPtr paramPtr, StringPtr strPtr);
- pascal Ptr StringMatch(XCmdBlockPtr paramPtr, StringPtr pattern, Ptr target);
- pascal void SendHCMessage(XCmdBlockPtr paramPtr, StringPtr msg);
- pascal void ZeroBytes(XCmdBlockPtr paramPtr, Ptr dstPtr, long count);
- pascal Handle PasToZero(XCmdBlockPtr paramPtr, StringPtr pasStr);
- pascal void ZeroToPas(XCmdBlockPtr paramPtr, char *zeroStr, StringPtr pasStr);
- pascal long StrToLong(XCmdBlockPtr paramPtr, Str31Ptr strPtr);
- pascal long StrToNum(XCmdBlockPtr paramPtr, Str31Ptr str);
- pascal Boolean StrToBool(XCmdBlockPtr paramPtr, Str31Ptr str);
- pascal void StrToExt(XCmdBlockPtr paramPtr, Str31Ptr str, extended *myext);
- pascal void LongToStr(XCmdBlockPtr paramPtr, long posNum, Str31Ptr mystr);
- pascal void NumToStr(XCmdBlockPtr paramPtr, long num, Str31Ptr mystr);
- pascal void NumToHex(XCmdBlockPtr paramPtr, long num, short nDigits, Str31Ptr mystr);
- pascal void BoolToStr(XCmdBlockPtr paramPtr, Boolean bool, Str31Ptr mystr);
- pascal void ExtToStr(XCmdBlockPtr paramPtr, extended *myext, Str31Ptr mystr);
- pascal Handle GetGlobal(XCmdBlockPtr paramPtr, StringPtr globName);
- pascal void SetGlobal(XCmdBlockPtr paramPtr, StringPtr globName, Handle globValue);
- pascal Handle GetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
- pascal Handle GetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
- pascal Handle GetFieldByID(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldID);
- pascal void SetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName, Handle fieldVal);
- pascal void SetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum, Handle fieldVal);
- pascal void SetFieldByID(XCmdBlockPtr paramPtr